home *** CD-ROM | disk | FTP | other *** search
/ Aminet 30 / Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso / Guides / PicsData / Rexx / PZ_MakeIFF_ECS.rexx < prev    next >
OS/2 REXX Batch file  |  1993-11-11  |  2KB  |  128 lines

  1. /*
  2. **  $VER: $Id: PZ_MakeIFF_ECS.rexx,v 5.0 1993/11/12 01:14:16 chris Exp $
  3. **  Copyright (C) 1992, 1993 by Christian A. Weber, Zürich, Switzerland.
  4. **  REXX script internally used by PicZoo. Do not start manually.
  5. **
  6. **  You may wish to change MAXMEM for ADPro if you don't have enough RAM,
  7. **  and the delay after loading if you have a slow HD :)
  8. */
  9.  
  10. options results
  11. arg adprodir filename destname maxwidth maxheight
  12. address 'ADPro'
  13.  
  14.  
  15. /*
  16. ** Set the desired screen dimensions. If we don't set them manually, we get
  17. ** the current text overscan values, which is just what we want!
  18. */
  19.  
  20. /* maxwidth  = 704 */
  21. /* maxheight = 468 */
  22.  
  23.  
  24. /*
  25. ** Make sure ADPro is running
  26. */
  27. IF ~show(ports,'ADPro') THEN
  28. DO
  29.     Address COMMAND 'C:Assign ADPRO: '||adprodir
  30.     Address COMMAND 'Run >NIL: ADPRO:ADPro MAXMEM=5000000 BEHIND'
  31.     Address COMMAND 'C:Wait 5'
  32.     IF ~show(ports,'ADPro') THEN EXIT
  33. END
  34.  
  35.  
  36. /*
  37. ** Screen types for ADPro
  38. */
  39. LORES        = 0
  40. HIRES        = 1
  41. LACE        = 2
  42. PAL        = 4
  43. XOVERSCAN    = 8
  44. YOVERSCAN    = 16
  45.  
  46.  
  47. /*
  48. ** Now load the picture ...
  49. */
  50. SCREEN_TYPE    LORES
  51. LFORMAT        'UNIVERSAL'
  52. LOAD        filename
  53.  
  54. IF RC == 0 THEN DO
  55.  
  56.     /*
  57.     ** Get the picture size
  58.     */
  59.     XSIZE
  60.     origwidth  = (ADPRO_RESULT*11) / 10    /* Correct aspect ratio for Amiga */
  61.     YSIZE
  62.     origheight = ADPRO_RESULT
  63.  
  64.  
  65.     /*
  66.     ** Now determine the new width and height, so the picture fits
  67.     ** into maxwidth/maxheight
  68.     */
  69.     width  = maxwidth
  70.     height = (origheight * maxwidth) / origwidth
  71.  
  72.     IF height > maxheight THEN DO
  73.         width  = (origwidth * maxheight) / origheight
  74.         height = maxheight
  75.     END
  76.  
  77.  
  78.     /*
  79.     **  Now set the parameters for the screenmode depending on the picture's
  80.     **  type (GRAY or COLOR)
  81.     */
  82.     IMAGE_TYPE
  83.     IF WORD(ADPRO_RESULT,1) = "GRAY" THEN DO
  84.         POFFSET        0
  85.         PUSED        16
  86.         PTOTAL        16
  87.         POFFSET        0
  88.         RENDER_TYPE    16
  89.         SCREEN_TYPE    HIRES + LACE + XOVERSCAN + YOVERSCAN
  90.     END
  91.     ELSE DO
  92.         POFFSET        0
  93.         PUSED        16
  94.         PTOTAL        HAM
  95.         POFFSET        0
  96.         RENDER_TYPE    HAM
  97.         SCREEN_TYPE    LORES + LACE + XOVERSCAN + YOVERSCAN
  98.         width = width / 2;        /* Because it's lo-res */
  99.     END
  100.  
  101.  
  102.     /*
  103.     ** Make sure we get the best dynamic range
  104.     */
  105.     OPERATOR    DYNAMIC_RANGE 0 255
  106.  
  107.  
  108.     /*
  109.     ** Scale the image and render it
  110.     */
  111.     ABS_SCALE    width height
  112.  
  113.     PSTATUS        UNLOCKED
  114.     DITHER        1        /* Floyd-Steinberg */
  115.     EXECUTE
  116.  
  117.     /*
  118.     ** Now save the result as IFF in the user's IFF directory
  119.     */
  120.     SFORMAT        'IFF'
  121.     SAVE        destname 'IMAGE'
  122.  
  123. END
  124. ELSE DO
  125.     say filename || ': not a picture'
  126. END
  127.  
  128.